package com.cares.event.service;

import java.util.List;

import com.cares.event.dto.EventActivityDto;
import com.cares.event.dto.EventExecutionDto;
import com.cares.event.dto.EventProcessDto;
import com.cares.event.entity.TEventExecution;

/**
 * 事件流service接口
 * @author xuji
 *
 */
public interface EventExecutionService {

	/**
	 * 服务器启动时， 查找所有的事件流程执行信息
	 * @return
	 */
	public List<EventActivityDto> queryEventExecutionDtos();
	
	//启动事件流程
	public boolean startEventFlow(EventProcessDto jsflowProcessDto);
	
	/**
	 * 查询流程实例运行
	 * @param jsflowProcessVO
	 */
	public TEventExecution getEventExecution(long executionId);

	/**
	 * 保存流程实例运行
	 * @param jsflowProcessVO
	 */
	public void doSaveEventExecution(EventExecutionDto jsflowExecutionDto);
	
	/**
	 * 更新流程实例运行
	 * @param jsflowProcessVO
	 */
	public void doUpdateEventExecution(EventExecutionDto jsflowExecutionDto);
	
	/**
	 * 删除流程实例运行
	 * @param jsflowProcessVO
	 */
	public void deleteEventExecution(long executionId);
	
	/**
	 *查找指定事件流的执行任务
	 * @param jsflowProcessVO
	 */
	public List<TEventExecution> queryEventExecution(EventExecutionDto jsflowExecutionDto);
	
}
